/**
 * <p>Title: MaterialCodeDao</p>
 * <p>Description: MaterialCodeDao接口</p>
 * <p>Copyright: Baosight Software LTD.co Copyright (c) 2002</p>
 * <p>Company: Baosight Software</p>
 * @author ChenWei 
 * @version 1.0
 * <pre>Histroy:
 *       2016-11-21  ChenWei   Create
 *</pre>
*/
package cn.jhg.account.persist;

import java.util.List;
import java.util.Map;

import cn.jhg.account.entity.MaterialCode;

public interface MaterialCodeDao {
	/**
	 * 添加原料编码
	 * @param code	编码
	 * @return		编码id
	 */
	public int addCode(MaterialCode code);
	
	/**
	 * 更新原料编码
	 * @param code	原料代码
	 */
	public int updateCode(MaterialCode code);
	
	/**
	 * 根据代码查询
	 * @param code	编码
	 * @return		MaterialCode 实体
	 */
	public MaterialCode queryByCode(String code);
	
	/**
	 * 根据 ID 查询
	 * @param id	编码id
	 * @return		MaterialCode 实体
	 */
	public MaterialCode queryById(int id);
	
	/**
	 * 查询原料代码
	 * @param MaterialCode code(code编码,name原料编码名称,spec原料规格,typeId	原料类型 id)
	 * @return			符合条件的原料编码 id 集合
	 */
	public List<Integer>findCode(MaterialCode code);
	
	/**
	 * 查询原料代码
	 * @param MaterialCode code(code编码,name原料编码名称,spec原料规格,typeId	原料类型 id)
	 * @return			符合条件的原料编码实体MaterialCode集合
	 */
	public List<MaterialCode> findCodeDetail(MaterialCode code);
	
	/**
	 * 失效原料编码
	 * @param id	原料编码id
	 */
	public int invalidCode(int id);
	
	/**
	 * 删除原料编码
	 * @param id	原料编码id
	 */
	public int deleteCode(int id);

	/**
	 * 通过原料类型id，原料编码，原料名称查询原料编码实体
	 * @param typeId  原料类型id
	 * @param code	原料编码
	 * @param name 原料名称
	 * @return List<MaterialCode> 原料实体，errorCode
	 */
	public List<MaterialCode> findMaterialCodeDetail(Map<String, Object> map);
	/**
	 * 通过原料类型id，原料编码，原料名称查询原料编码实体
	 * @param code	原料编码
	 * @param name 原料名称
	 * @return List<MaterialCode> 原料实体，errorCode
	 */
	public List<MaterialCode> findMaterialCodeDetails(Map<String, Object> map);
}
